home *** CD-ROM | disk | FTP | other *** search
/ ...taking it to the Macs! / ...taking it to the Macs!.iso / Extras / ActiveX Mac SDK / ActiveX SDK / Containers / ActiveXApp / CActiveXView.h < prev    next >
Encoding:
Text File  |  1996-12-16  |  4.4 KB  |  127 lines  |  [TEXT/CWIE]

  1. // ===========================================================================
  2. //    CActiveXView.h                  ©1996 Microsoft Corporation. All rights reserved..
  3. // ===========================================================================
  4.  
  5. #ifndef _H_CActiveXView
  6. #define _H_CActiveXView
  7. #pragma once
  8.  
  9. #include <LView.h>
  10. #include <LCommander.h>
  11. #include <LAttachment.h>
  12. #include <LDragAndDrop.h>
  13.  
  14. #include "HEADERS.H"
  15.  
  16. class    CActiveXAttachment;
  17. class    CActiveXDocument;
  18. #ifdef MULTI_CONTEXT_TEST_APP
  19. class    CActiveXShadowView;
  20. #endif    //    MULTI_CONTEXT_TEST_APP
  21. class    CIdle;
  22.  
  23. class    CActiveXView : public LView,
  24.                         public LCommander,
  25.                         public LDragAndDrop,
  26.                         public CXSite
  27. {
  28.  
  29. public:
  30.     friend class        CActiveXShadowView;
  31.  
  32.     enum { class_ID = 'ActX' };
  33.     static CActiveXView*    CreateActiveXViewStream(LStream *inStream);
  34.  
  35.                         CActiveXView(void);
  36.                         CActiveXView(LStream *inStreamP);
  37.                         ~CActiveXView(void);
  38.  
  39.     // **** LView method overrides ***
  40.     virtual void        Click(SMouseDownEvent &inMouseDown);
  41. //    these are tentative View Class Overrides
  42.     virtual void        ResizeFrameBy(Int16 inWidthDelta, Int16 inHeightDelta, Boolean inRefresh);
  43.     virtual void        MoveBy(Int32 inHorizDelta, Int32 inVertDelta, Boolean inRefresh);
  44.     virtual void        AdaptToNewSurroundings(void);
  45.     virtual void        AdaptToSuperFrameSize(Int32 inSurrWidthDelta, Int32 inSurrHeightDelta, Boolean inRefresh);
  46.     virtual void        ScrollImageBy(Int32 inLeftDelta, Int32 inTopDelta, Boolean inRefresh);
  47.     virtual void        ResizeImageBy(Int32 inWidthDelta, Int32 inHeightDelta, Boolean inRefresh);
  48. //    end tentative
  49.  
  50.     // **** LCommander method overrides ***
  51.     virtual Boolean        HandleKeyPress(const EventRecord& inKeyEvent);
  52.     virtual void        DoEvent(EventRecord *inEvent, Boolean *outPassEventUp, Boolean *outRemoveAttachment);
  53.  
  54.     Boolean                IsDirty(void) { return mDirty; };
  55.     void                SetDirty(Boolean Dirty) { mDirty = Dirty; };
  56.  
  57. #ifdef MULTI_CONTEXT_TEST_APP
  58.     //    Support for multiple draw contexts
  59.     void                AddShadowView(CActiveXShadowView *inShadowView);
  60.     void                RemoveShadowView(CActiveXShadowView *inShadowView);
  61.     void                DrawShadowView(CActiveXShadowView *inShadowView, Boolean8 inUpdateContext);
  62.     void                ClickInShadowView(CActiveXShadowView* inShadowView, SMouseDownEvent &inMouseDown);
  63. #endif    //    MULTI_CONTEXT_TEST_APP
  64.  
  65.     // **** IContainerSite methods overrides ***
  66.     //STDMETHOD_        (ULONG, Release)(void);
  67.     STDMETHOD            (AcquireContext) (THIS_ Uint32 inContextID, DrawContext* outContext);
  68.     STDMETHOD            (ReleaseContext) (THIS_ DrawContext* inContext);
  69.     STDMETHOD            (RequestFocus) (THIS_ Boolean8 inAcquire, FocusSet inFocus);
  70.     STDMETHOD            (RequestSizeChange) (THIS_ PlatformPoint* ioSize);
  71.     STDMETHOD            (SetIdleTime) (THIS_ Int32 WaitTicks, Uint32 IdleRefCon);
  72.  
  73. protected:
  74.     //    LCommander Class Overrides
  75.     virtual void        FindCommandStatus( CommandT inCommand, Boolean &outEnabled,
  76.                             Boolean &outUsesMark, Char16 &outMark, Str255 outName );
  77.     virtual Boolean        ObeyCommand(CommandT inCommand, void *ioParam);
  78.     virtual void        DrawSelf();
  79.     virtual void        BeTarget();
  80.     virtual void        DontBeTarget();
  81.  
  82.     //    Drag and Drop methods
  83.     virtual Boolean        ItemIsAcceptable( DragReference inDragRef, ItemReference inItemRef );
  84.     virtual void        ReceiveDragItem( DragReference inDragRef, DragAttributes inDragAttrs,
  85.                             ItemReference inItemRef, Rect &inItemBounds );
  86.  
  87.     //    CActiveXView methods
  88.     ErrorCode            AcquireContext(LView* inView, DrawContext* outContext);
  89.     LView                *GetDrawingViewFromIndex(Int32 inContextIndex);
  90.     LView                *GetDrawingViewFromID(Uint32 inContextID);
  91.     void                UpdateDrawingContext(LView* inDrawView, ContextCommand inContextCommand);
  92.  
  93.    virtual Boolean8        GetContextID (Int32 inContextIndex, UInt32* outContextID);
  94.  
  95. private:
  96.     void                CommonInit(void);
  97.     void                InstantiateControl(Char8 **inArgNames, Char8 **inArgValues, Int16 inArgCount);
  98.     void                InstantiateControl(FSSpecPtr inFileSpec);
  99.     void                RemoveControl(void);
  100.     void                HandleClick(SMouseDownEvent &inMouseDown);
  101.     void                AttachPort(Boolean inHasPort);
  102.  
  103.     CIdle                *mStreamIdleP;
  104.     CActiveXAttachment    *mMouseUpAttachmentP;
  105.     CActiveXDocument    *mDocumentP;
  106.     LArray                *mViewArrayP;
  107.     LArray                *mPendingViewsP;
  108.     LView                *mActiveView;
  109.     Boolean8            mInRequestFocus;
  110.     Boolean8            mContextDirty;
  111.     Boolean8            mDirty;
  112. };
  113.  
  114.  
  115. class CActiveXAttachment : public LAttachment
  116. {
  117. public:
  118.                     CActiveXAttachment( CActiveXView *inActiveXView );
  119.                     ~CActiveXAttachment();
  120.     
  121. protected:
  122.     CActiveXView    *mActiveXView;
  123.  
  124.     void            ExecuteSelf( MessageT inMessage, void *ioParam );
  125. };
  126.  
  127. #endif